"""Definition of the Descentralizada content type
"""

from zope.interface import implements, directlyProvides

from Products.Archetypes import atapi
from Products.ATContentTypes.content import base
from Products.ATContentTypes.content import schemata
from Products.ATContentTypes.content.base import ATCTContent, ATCTFolder

from guegue.alcaldias import alcaldiasMessageFactory as _
from guegue.alcaldias.interfaces import IDescentralizada
from guegue.alcaldias.config import PROJECTNAME

DescentralizadaSchema = schemata.ATContentTypeSchema.copy() + atapi.Schema((

    # -*- Your Archetypes field definitions here ... -*-
    atapi.StringField('title',
                searchable=1,
                isMetadata=0,
                accessor='Title',
                widget=atapi.StringWidget(label='Nombre de la Institución',
                                      maxlength=150,
                                      size=30,
                                      label_msgid="label_entry_title",
                                      description_msgid="help_entry_title",
                                      i18n_domain="guegue.alcaldias",
                                      description='')),
    atapi.StringField('description',
                searchable=1,
                isMetadata=0,
                accessor='Description',
                widget=atapi.TextAreaWidget(label='Descripción',
                                      label_msgid="label_entry_description",
                                      description_msgid="help_entry_description",
                                      i18n_domain="guegue.alcaldias",
                                      description='Entre una breve descripción del hermanamiento.')),
    atapi.TextField('body',
              searchable=1,
              required=0,
              primary=1,
              default_content_type='text/html',
              default_output_type='text/html',
              allowable_content_types=('text/plain','text/structured', 'text/html', 'text/restructured'),
              widget=atapi.RichWidget(label='Funciones/Servicios',
                                label_msgid="label_entry_body",
                                description_msgid="help_entry_body",
                                i18n_domain="guegue.alcaldias",
                                description="Servicios...")),
    atapi.TextField('funcionarios',
              searchable=1,
              required=0,
              default_content_type='text/html',
              default_output_type='text/html',
              allowable_content_types=('text/plain','text/structured', 'text/html', 'text/restructured'),
              widget=atapi.RichWidget(label='Funcionarios Responsables',
                                label_msgid="label_entry_funcionarios",
                                description_msgid="help_entry_funcionarios",
                                i18n_domain="guegue.alcaldias",
                                description="Funcionarios Responsables")),
    atapi.StringField('direccion',
                searchable=1,
                isMetadata=0,
                widget=atapi.StringWidget(label='Dirección Física',
                                      size=80,
                                      label_msgid="label_entry_direccion",
                                      description_msgid="help_entry_direccion",
                                      i18n_domain="guegue.alcaldias",
                                      description='')),
    atapi.StringField('telefono',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Teléfono',
                                      label_msgid="label_entry_telefono",
                                      description_msgid="help_entry_telefono",
                                      i18n_domain="guegue.alcaldias",
                                      description='')),
    atapi.StringField('fax',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Fax',
                                      label_msgid="label_entry_fax",
                                      description_msgid="help_entry_fax",
                                      i18n_domain="guegue.alcaldias",
                                      description='')),
    atapi.StringField('correo',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Correo Electrónico',
                                      label_msgid="label_entry_correo",
                                      description_msgid="help_entry_correo",
                                      i18n_domain="guegue.alcaldias",
                                      description='')),
    atapi.StringField('horario',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Horario de atención',
                                      label_msgid="label_entry_horario",
                                      description_msgid="help_entry_horario",
                                      i18n_domain="guegue.alcaldias",
                                      description='')),
))

# Set storage on fields copied from ATContentTypeSchema, making sure
# they work well with the python bridge properties.

#DescentralizadaSchema['title'].storage = atapi.AnnotationStorage()
#DescentralizadaSchema['description'].storage = atapi.AnnotationStorage()

schemata.finalizeATCTSchema(DescentralizadaSchema, moveDiscussion=False)

class Descentralizada(base.ATCTContent):
    """Descentralizada Central en el municipio"""
    implements(IDescentralizada)

    portal_type = "Descentralizada"
    schema = DescentralizadaSchema

    #title = atapi.ATFieldProperty('title')
    #description = atapi.ATFieldProperty('description')

atapi.registerType(Descentralizada, PROJECTNAME)
